#ifndef _OBJECT_H_
#define _OBJECT_H_

#include "Element.h"
#include "Texture.h"
#include "Material.h"
#include <stack>

class Object : public Element {
public:
	Object() : inherit_texture(true) {}
	virtual ~Object() {}

	bool inherit_texture;
	Texture *texture;
	Material *material;
	bool isPrimitive;

	void initElement() {}
	virtual void displayElement() =0;

	
	virtual void enableObjectProperties() {
		if( material ) {
			/*glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat1_shininess);
			glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR,  mat1_specular);
			glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,   mat1_diffuse);
			glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT,   mat1_ambient);*/
		}

		if( texture ) {

		}
	}
	virtual void disableObjectProperties() {}
};

#endif